# 创建进程池的语法结构
# 进程池对象 = Pool(N)

from multiprocessing import Pool
import os, time


# 要执行的任务
def task(name):
    print(f'子进程的pid:{os.getpid()},执行的任务:{name}')
    time.sleep(1)


if __name__ == '__main__':
    # 主进程
    start = time.time()
    print('父进程开始执行')
    # 创建进程池,一次执行3个任务
    p = Pool(3)
    # 创建任务
    for i in range(10):
        # 非阻塞方式
        p.apply_async(func=task, args=(i,))

    p.close()  # 关闭进程池不再执行任务
    p.join()  # 阻塞父进程
    print('所有的子进程执行完毕，父进程执行结束')
    print(time.time() - start)
